package vip.gnloypp.redis.mq.api.config;

import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;
import vip.gnloypp.redis.mq.api.core.handler.ReceiveHandler;
import vip.gnloypp.redis.mq.api.data.RedisMqMessage;

/**
 * @author GuoNanLin
 * @since 2024/8/30 16:36
 */
@Getter
@Setter
@Accessors(chain = true)
public class RedisReceiverQueueConfig<T extends RedisMqMessage> {

    /**
     * 队列唯一标识
     */
    private String queue;
    /**
     * 消费者组
     */
    private String group;
    /**
     * 消费者
     */
    private String consumer;
    /**
     * 消费处理类
     */
    private ReceiveHandler<T> receiveHandler;
    /**
     * 消息类
     */
    private Class<T> eventType;
    /**
     * 每次拉取消息数
     */
    private Integer batchSize;
    /**
     * 重试间隔（秒）
     */
    private Long retryTimeout;
    /**
     * 消息隐藏时间（秒）
     */
    private Long minIdleTime;
    /**
     * 重试次数
     */
    private Long retryMaxCount;

}
